import { screen } from '@testing-library/react' import { beforeAll, describe, expect, test, vi } from 'vitest' import { customRender as render } from '@/tests/lib/custom-render' vi.mock('@/components/interfaces/Home/Home', () => ({ Home: () =>
, })) vi.mock('@/components/interfaces/ProjectHome/Home', () => ({ ProjectHome: () =>
, })) vi.mock('@/components/layouts/DefaultLayout', () => ({ default: ({ children }: { children: React.ReactNode }) => <>{children}, })) vi.mock('@/components/layouts/ProjectLayout', () => ({ ProjectLayoutWithAuth: ({ children }: { children: React.ReactNode }) => <>{children}, })) vi.mock('@/lib/gotrue', () => ({ auth: { onAuthStateChange: vi.fn() }, })) describe('when IS_PLATFORM is true', () => { beforeAll(() => { vi.doMock('common', async (importOriginal: () => Promise) => { const mod = await importOriginal() return { ...mod, IS_PLATFORM: true } }) }) test('renders ProjectHome', async () => { const { default: HomePage } = await import('@/pages/project/[ref]/index') render() expect(screen.getByTestId('project-home')).toBeInTheDocument() expect(screen.queryByTestId('old-home')).not.toBeInTheDocument() }) }) describe('when IS_PLATFORM is false', () => { beforeAll(() => { vi.resetModules() vi.doMock('common', async (importOriginal: () => Promise) => { const mod = await importOriginal() return { ...mod, IS_PLATFORM: false } }) }) test('renders Home', async () => { const { default: HomePage } = await import('@/pages/project/[ref]/index') render() expect(screen.getByTestId('old-home')).toBeInTheDocument() expect(screen.queryByTestId('project-home')).not.toBeInTheDocument() }) })